package com.java.basis.collection.set;

import java.util.HashSet;
import java.util.Iterator;

/**
 * @author wangning
 * @create 2021-04-22 21:43
 */
public class TestHashSet03 {
	public static void main(String[] args) {
		HashSet<Person> personHashSet = new HashSet<>();
		Person person = new Person("刘德华",20);
		Person person1 = new Person("林志玲",22);
		Person person2 = new Person("梁朝伟",25);
		Person person3 = new Person("梁朝伟",25);
		personHashSet.add(person);
		personHashSet.add(person1);
		personHashSet.add(person2);
		personHashSet.add(person2);//这种方式是添加不进去的，因为已经重复了

		personHashSet.add(person3);//但是这种可以，因为其引用与person2不相同
		//如果我们想要实现只要名字一样，年龄一样就认为是一个人，需要怎么做？？？
		//我们可以重写其hashcode,equals方法

		System.out.println("元素个数：" + personHashSet.size());
		System.out.println(personHashSet.toString());

		//2.删除操作
//		personHashSet.remove(person);

		//3.遍历
		for (Person p : personHashSet) {
			System.out.println(p);
		}
		Iterator<Person> iterator = personHashSet.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());

		}

		//4.判断
		System.out.println(personHashSet.contains(person));
	}
}
